A digital-image input device, such as a digital camera or a scanner, converts light reflected from an object into digital data representing an image of the object. Typically, the digital data is divided into units, each unit describing the color of a portion, or pixel, of the image. Accordingly, the image may be described as a two-dimensional array of pixels (x, y). Further, each unit of digital data typically describes the color of a pixel by describing the amount, or intensity, of each primary color red, green, and blue, present in the pixel. For example, the digital data may indicate that the pixel at x=0 and y=0 has a red intensity of 200, a green intensity of 134, and a blue intensity of 100, where the intensity of each primary color is represented by eight bits. (Eight bits allows 256 combinations, so each primary color may have a value of 0-255, in this example, where 255 indicates the highest level of intensity and zero indicates no intensity, or black.) The digital data produced by a digital-image input device is referred to herein as “device dependent data,” because different digital-image input devices typically produce different digital data representing the same image acquired under the same conditions. For example, a first digital camera may indicate that a first pixel of an image has a red component of 200, whereas a second digital camera may indicate that the same pixel of an equivalent image taken under the same conditions has a red component of 202. For another example, the first digital camera may record the red in an apple as 200, and the second digital camera may record the red in the same part of the apple (as imaged under the same conditions) as 202. Because the device-dependent data generated by a digital-image input device typically specifies the red, green, and blue color components associated with each pixel, it is often referred to as “RGB” data.
The differences between device-dependent data from two different devices arise from minute differences in the imaging components in each device. These differences create problems when the images are output by a digital-image output device, such as a color ink-jet printer, a CRT monitor, or an LCD monitor. For example, the image of the apple taken by the first digital camera discussed above will appear differently than the image of the apple taken by the second digital camera when output to the same color ink-jet printer.
To further complicate matters, digital-image output devices also have the same types of discrepancies between each other that digital-image input devices have. For example, a user may want to view an image of a red square on one CRT monitor while a customer simultaneously views the same image on another CRT monitor. Assume that the digital-image input device used to image the red square recorded all pixels of the red square as red=200, green=0, and blue=0. Commonly, when the two monitors display the same image, each monitor displays a slightly different red color even though they have received the same digital data from the input device.
The same differences commonly exist when printing the same image to two different printers. However, it should be noted that the digital image data processed by printers typically describes each pixel in an image according to the amount, or intensity, of each secondary color cyan, magenta, and yellow, as well as black present in the pixel. Accordingly, the device-dependent digital image data processed by printers is referred to as “CMYK” data (as opposed to RGB device-dependent data associated with digital-image input devices.) (Monitors, on the other hand, display data in RGB format).
Color profiles provide a solution to the color discrepancies between devices discussed above. Each digital-image input device typically has its own color profile that maps its device-dependent data into device-independent data. Correspondingly, each digital-image output device typically has its own color profile that converts device-independent data into device-dependent data usable by the output device to print colors representative of the device-independent data. Device-independent data describes the color of pixels in an image in a universal manner, i.e., a device-independent color space. A device-independent color space assigns a unique value to every color, where the unique value for each color is determined using calibrated instruments and lighting conditions. Examples of device-independent color spaces are CIEXYZ, CIELAB, CIE Yxy, and CIE LCH, known in the art. Device-independent data is sometimes referred to herein as “device-independent coordinates.” Device-independent data in the CIEXYZ color space is referred to herein as “XYZ data,” or just “XYZ.” Device-independent in the CIELAB color space is referred to herein as “LAB data,” “CIELAB” or just “LAB.”
Theoretically, color profiles allow a user to acquire an image of an object using any digital-image input device and to output an accurate representation of the object from a digital-image output device. With reference to FIG. 1, for example, an image of an object 101 is acquired using a digital-image input device 102. The image is represented in FIG. 1 as RGB 103. Then, the image RGB 103 is converted into device-independent data (XYZ 105, for example) using the digital-image input device's color profile 104. The device-independent data XYZ 105 is then converted using the output device's color profile 106 into device-dependent data (CMYK 107, for example) specific to the output device 108. The output device 108 uses its device-dependent data CMYK 107 to generate an accurate representation 109 of the object 101.
The usefulness of color profiles is limited by how accurately they convert device-dependent data to device-independent data, or vice versa. Currently, there is no way of generating a color profile that perfectly translates device-dependent data to device-independent data, or vice-versa. Errors in color profiles become apparent when comparing a displayed image, such as an image displayed on a CRT or LCD monitor, and a hard-copy printout of the image.
Conventional methods exist that improve color profiles by correcting device-independent data associated with device-dependent data. However, these methods, while improving color profiles, still leave small but significant color errors on the order of 2-3 delta E in certain regions of color space. (The unit of 1 delta E, known in the art, refers to one unit of Euclidean distance in the CIELAB color space.) In other words, the translations or corrections performed by the conventional methods still introduce irregularities in the corrected color gamut and, particularly for large corrections, are not truly linear in all areas of color space.
Accordingly, a need in the art exists for a method for correcting color profiles or a device-independent color space with reduced errors.